<?php
//验证类
class Validate {

    //判断是否为数据
    public static function isArray($data) {
        return is_array($data) ? true : false;
    }

    //判断是否对象
    public static function isObject($data) {
        return is_object($data) ? true : false;
    }

    //判断数组是否为空
    public static function isNullArray($data) {
        return count($data) == 0 ? true : false;
    }

    //判断元素是否在数组内
    public static function inArray($data,$array) {
        return in_array($data,$array) ? true : false;
    }

    //判断字符串是否为空
    public static function isNullString($data) {
        return empty($data) ? true : false;
    }

    //判断是否是数字
    public static function isNumber($data) {
        return is_numeric($data) ? true : false;
    }

    /* 验证数据长度是否合法
     * String $data 需要验证的数据
    * Num $length  合法长度
    * String $flag 检测是大于还是小于
    */
    public static function checkStrLength($data,$length,$flag,$charset = 'utf-8') {
        if($flag == 'min') {
            return mb_strlen(trim($data),$charset) < $length ? true : false;
        } elseif($flag == 'max') {
            return mb_strlen(trim($data),$charset) > $length ? true : false;
        } elseif($flag == 'equals') {
            return mb_strlen(trim($data),$charset) != $length ? true : false;
        } else {
            Tool::remindBack('$flag传值不合法，必须为min或者max');
        }
    }

    /*
     * 验证数据是否一致
    * String $data 数据一
    * String $otherdata 数据二
    */
    public static function checkStrEqual($data,$otherdata) {
        return trim($data) === trim($otherdata) ? true : false;
    }

    //检验数据是否包含非法字符
    public static function checkNotIllegalStr($data) {
        $notAllow = array('\'','\\','/','<','>',';','"');
        foreach($notAllow as $value) {
            if(strpos($data,$value) !== false) {
                return false;
            }
        }
        return true;
    }

    //检验电子邮件是否合法
    public static function checkEmail($data) {
        return preg_match('/^[\w\_\.]+@[\w\_]+(\.\w+)+$/',$data) ? true : false;
    }


}


?>